package com.tianji.aigc.service;

import com.tianji.aigc.vo.ChatEventVO;
import com.tianji.common.utils.UserContext;
import reactor.core.publisher.Flux;

/**
 * @author wyy
 */
public interface ChatService {

    /**
     * 聊天
     * @param question
     * @param sessionId
     * @return
     */
    Flux<ChatEventVO> chat(String question, String sessionId);

    /**
     * 停止生成
     * @param sessionId
     */
    void stop(String sessionId);

    /**
     * 获取会话ID，规则为：用户ID_会话ID
     * @param sessionId 会话ID
     * @return 对话ID
     */
    static String getConversationId(String sessionId) {
        return UserContext.getUser() + "_" + sessionId;
    }

    /**
     * 文本聊天
     * @param question
     * @return
     */
    String chatText(String question);
}
